#include "UDPserver.hpp"
#include <iostream>
#include <memory>
#include "dict.hpp"


// ./udpserver ip port
int main(int argc,char* argv[])
{
    if(argc!=2)
    {
        std::cerr<<"Usage: "<<argv[0]<<"  port"<<std::endl;
        return 1;
    }
    //std::string ip=argv[1];
    uint16_t port=std::stoi(argv[1]);

    Enable_console_logstrategy();

    Dict d1;
    d1.LoadDict();

    std::unique_ptr<udpserver> usvr=std::make_unique<udpserver>(port/*,ip*/,[&d1](const std::string& s) ->std::string { return d1.translate(s); });
    //这里不可以使用d1.translate，因为d1.translate 是一个 成员函数，它本质上是一个函数指针（还带有 this 的隐含参数），不能直接当作对象传给 udpserver 的构造函数。
    usvr->init();
    usvr->Start(); 
    return 0;
}
